/*
 * 查房列表
 * @author 醉雪
 * @time 2018/10/17
 * @since 1.0.0
 * */
// React基础组件
import React from 'react'
// dva 连接组件 - 连接route和model
import { connect } from 'dva'
// 引入antd的组件
import { Form, Select, Input, DatePicker, Button } from 'antd'
import moment from 'moment';
const { RangePicker } = DatePicker;
const dateFormat = 'YYYY/MM/DD';
//导入路由组件，用于跳转等
import { Link, hashHistory } from 'dva/router'
// 导入项目全局配置文件
import config from 'config/config'

// 引入model取值工具方法
import { mapStateToProps } from 'utils/view_utils'
// 当前组件样式
// import styles from './bookingListStyle.less'
//引用listPage
import ListPage from 'widget/PageTmpl/ListPage'
import cx from 'classnames'

const Option = Select.Option;
/**
 * description 路由视图及事件处理
 * dispatch 分发到models中的effects对应事件名
 * model 用于获取models中state定义的数据
 * form 表单对象
 */

const infoListAdminView = function ({ dispatch, model, form }) {
  // 表单的子函数
  const { resetFields, getFieldDecorator, validateFields, setFieldsValue } = form
  // 取出model对象，命名空间
  const { modelObj, namespace } = model

  // modelObj.xxx获取model中状态机的值

  // 资讯详情页跳转
  function detailSkip(id) {
    // console.log(Id)
    // hashHistory.push({
    //     pathname: '/home/bookingAdmin/bookingDetail',
    //     query: { bookingId:id }
    // });
  }

  let pageProps = {
    // ---------- 界面部分 ----------
    "ui": {
      // 页面接口地址
      "api_url": "admin/user/product/page",
      // 接口方式
      "method": "POST",
      "app": "",
      // 接口参数
      "params": "pageNo=1&pageSize=10",
      // 模拟数据 - 用于开发需要，若填充了上面的api_url之后，请将此项设置为null
      // "mockData": mockData,
      "mockData": null,
      btnId:'120301',
      // 查询栏
      "search_bar": {
        "fields": [
          {
            en_name: 'provinceCode',
            zh_name: '省份',
            elem_type: 'Select',
            elem_valid_type: 'string',
            cmpt_items: [
              {
                value: '1',
                label: '广东省'
              },
              {
                value: '0',
                label: '湖南省'
              },
            ],
          },
          {
            en_name: 'cityCode',
            zh_name: '城市',
            elem_type: 'Select',
            elem_valid_type: 'string',
            cmpt_items: [
              {
                value: '1',
                label: '广州市'
              },
              {
                value: '0',
                label: '长沙市'
              },
            ],
          },
          {
            en_name: 'areaCode',
            zh_name: '地区',
            elem_type: 'Select',
            elem_valid_type: 'string',
            cmpt_items: [
              {
                value: '1',
                label: '天河区'
              },
              {
                value: '0',
                label: '红灯区'
              },
            ],
          },
          {
            en_name: 'recommendUser',
            zh_name: '推荐人',
            elem_type: 'Input',
            elem_valid_type: 'string',
          },
          {
            en_name: 'recommendUserType',
            zh_name: '推荐人类型',
            elem_type: 'Input',
            elem_valid_type: 'string',
          },
          {
            en_name: "validTime",
            zh_name: "推荐时间",
            elem_type: "Date",
            format: "YYYY-MM-DD HH:mm:ss",
            // query_format: "YYYY-MM-DD HH:mm:ss",   // 请求参数, 当请求参数和显示时格式不同可通过该参数区分
            double: true,  // 日期范围组件 使用"YYYY-MM-DD HH:mm:ss"格式时, 显示不全时可使用该参数, 将占据两格位置
            split_keys: ['startTime', 'endTime'],
            elem_valid_type: "string"
          }
        ],
        searchHandler: () => { // 自定义搜索按钮回调函数，点击搜索时触发
          console.log('search click')
        },
        resetHandler: () => { // 自定义重置按钮回调函数，点击重置时触发
          console.log('reset click')
        },
        searchCallback: params => { // 自定义搜索完成后的后调函数, 搜索完成后触发, 并将本次搜索的参数传入
          console.log('search finish', params)
        },
        pasteTargetList: [  // 列表组件中将输入框的en_name作为默认id(也可以通过id另外设置)
          'carName',  // 将需要粘贴事件拦截的输入框id以数组的形式传入, 该参数对应PasteFromClipboard组件的targetList参数
        ]
      },
      // 数据表格
      "table":
      {
        "status_params": "status=0",
        "status_text": "全部",
        // 表头字段列表
        "scroll": { x: 1000 },
        "fields": [
          {
            "en_name": "key",
            "zh_name": "序号",width: 60,
            render: (a, item, index, d, e, f) => {
              return index + 1
            }
          },
          {
            "en_name": "cityName",
            width:150,
            "zh_name": "所属省市",
          },
          {
            "en_name": "productName",
            "zh_name": "推荐美房",
          },
          {
            "en_name": "recommendUser",
            "zh_name": "推荐人",
          },
          {
            "en_name": "recommendUserType",
            "zh_name": "推荐人类型",
          },
          {
            "en_name": "recommendMethod",
            "zh_name": "推荐方式",
          },
          {
            "en_name": "recommendTime",
            "zh_name": "推荐时间",
          },
          {
            "en_name": "refereeAccountId",
            "zh_name": "被推荐人用户ID",
          }, {
            "en_name": "refereeUserName",
            "zh_name": "被推荐人用户名",
          },
          {
            "en_name": "isRegister",
            "zh_name": "被推荐人是否注册",
          },
        ]
      },
    },
  }

  return (
    <div className={cx('pageLayout')}>
      <ListPage pageProps={pageProps} />
    </div>
  )
}

// 连接视图(view)和模型(model)
export default connect(mapStateToProps)(Form.create()(infoListAdminView))
